package com.lottery.material.service.admin.system;

import java.util.List;

import com.lottery.material.pojo.page.Page;
import com.lottery.material.pojo.page.PageData;
import com.lottery.material.pojo.system.User;

/**
 * @description 用户接口类
 * @author rambo
 * @date 2018年7月11日 上午9:28:26
 */
public interface UserService {
	
	/**
	 * @description 登录判断
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	PageData getUserByNameAndPwd(PageData pd)throws Exception;
	
	/**
	 * @description 更新登录时间
	 * @param pd
	 * @throws Exception
	 */
	void updateLastLogin(PageData pd)throws Exception;
	
	/**
	 * @description 通过用户ID获取用户信息和角色信息
	 * @param USER_ID
	 * @return
	 * @throws Exception
	 */
	User getUserAndRoleById(String USER_ID) throws Exception;
	
	/**
	 * @description 通过USERNAEME获取数据
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	PageData findByUsername(PageData pd)throws Exception;
	
	/**
	 * @description 列出某角色下的所有用户
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	List<PageData> listAllUserByRoldId(PageData pd) throws Exception;
	
	/**
	 * @description 保存用户IP
	 * @param pd
	 * @throws Exception
	 */
	void saveIP(PageData pd)throws Exception;
	
	/**
	 * @description 用户列表
	 * @param page
	 * @return
	 * @throws Exception
	 */
	List<PageData> listUsers(Page page)throws Exception;
	
	/**
	 * @description 通过邮箱获取数据
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	PageData findByUE(PageData pd)throws Exception;
	
	/**
	 * @description 通过编号获取数据
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	PageData findByUN(PageData pd)throws Exception;
	
	/**
	 * @description 通过id获取数据
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	PageData findById(PageData pd)throws Exception;
	
	/**
	 * @description 修改用户
	 * @param pd
	 * @throws Exception
	 */
	void editU(PageData pd)throws Exception;
	
	/**
	 * @description 保存用户
	 * @param pd
	 * @throws Exception
	 */
	void saveU(PageData pd)throws Exception;
	
	/**
	 * @description 删除用户
	 * @param pd
	 * @throws Exception
	 */
	void deleteU(PageData pd)throws Exception;
	
	/**
	 * @description 批量删除用户
	 * @param USER_IDS
	 * @throws Exception
	 */
	void deleteAllU(String[] USER_IDS)throws Exception;
	
	/**
	 * @description 用户列表(全部)
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	List<PageData> listAllUser(PageData pd)throws Exception;
	
	/**
	 * @description 获取总数
	 * @throws Exception
	 */
	PageData getUserCount()throws Exception;
	
	/**
	 * @description 获取所有用户
	 * @return
	 * @throws Exception
	 */
	List<User> getListUser() throws Exception;
	
}
